#ifndef CB_BACKTRACEDLG_H
#define CB_BACKTRACEDLG_H

#include <wx/panel.h>
#include <M_Code_debugger_interfaces.h>
#include <manager.h>

class wxCommandEvent;
class wxListCtrl;
class wxListEvent;
class wxWindow;

class BacktraceDlg : public wxPanel, public cbBacktraceDlg {
  public:
    BacktraceDlg( wxWindow* parent );
    wxWindow* GetWindow() { return this; }
    void Reload();
    void EnableWindow( bool enable );
  private:
    void OnListRightClick( wxListEvent& event );
    void OnDoubleClick( wxListEvent& event );
    void OnJump( wxCommandEvent& event );
    void OnSwitchFrame( wxCommandEvent& event );
    void OnSave( wxCommandEvent& event );
    void OnCopyToClipboard( wxCommandEvent& event );
    void OnSettingJumpDefault( wxCommandEvent& event );
    void OnSettingSwitchDefault( wxCommandEvent& event );
    void OnUpdateUI( wxUpdateUIEvent &event );
    bool IsSwitchFrameEnabled() const;
  private:
    DECLARE_EVENT_TABLE();
  private:
    wxListCtrl *m_list;
};

#endif
